# -*- coding: UTF-8 -*-
# Author: Slp
# @Date : 2021-08-17


def create_line(l):  # 生成杨辉三角的一行
    L = [1]
    for x in range(1, len(l)):
        L.append(l[x] + l[x - 1])
    L.append(1)
    return L


# 基于某种规则将每一行的每个元素打印出来
def print_line(L, W):  # 打印
    s = ""
    for x in L:
        s += str(x) + " "
    print(s.center(W))


while True:
    try:
        row = int(input("输入行数："))
        if row <= 0:
            raise ValueError('行数不合法')
        break
    except:
        print("输入错误，必须是不为0的正整数")

L = [1]

width = row * 4  # 设置打印宽度
if row > 1:  # 当输入的行大于1时，才需要循环构造每一行
    for x in range(row):
        print_line(L, width)
        L = create_line(L)
else:  # 如果只有一行时，直接打印该行
    print_line(L, width)
